package realQuestion.tuan8_19;

import java.util.Arrays;
import java.util.Scanner;

public class Test4 {

}
class Main4{
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        int n = scanner.nextInt();
//        int[] a = new int[n];
//        for (int i = 0; i < n; i++) {
//            a[i]=scanner.nextInt();
//        }
//        long sum = getSum(a);
//         long mod=(long)Math.pow(10,9)+ 7;
//        long[] dp = new long[(int)sum+1];
//        Arrays.fill(dp,0);
//        dp[0]=1;
//
//        for (int i = 1; i <=n ; i++) {
//            for (int j = (int)(sum-a[i-1]); j >=0 ; j--) {
//                dp[j+a[i-1]]=(dp[j+a[i-1]]+dp[j])%mod;
//
//            }
//        }
//        long result=(dp[(int)sum]-1+mod)%mod;
//        System.out.println(result);
//
//    }
//    static  long getSum(int[] a){
//        long sum=0;
//        for (int i:a) {
//            sum+=i;
//        }
//        return  sum;
//    }

    public static void main(String[] args) {
        final int MOD = 1000000007;

        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] a = new int[n];
        long totalSum = 0;

        for (int i = 0; i < n; i++) {
            a[i] = scanner.nextInt();
            totalSum += a[i];
        }

        long[][] dp = new long[n + 1][(int)totalSum + 1];
        dp[0][0] = 1;

        for (int i = 1; i <= n; i++) {

            for (int j = 0; j <= totalSum; j++) {

                dp[i][j] = dp[i - 1][j];

                if (j >= a[i - 1]) {
                    dp[i][j] = (dp[i][j] + dp[i - 1][j - a[i - 1]]) % MOD;
                }

            }
        }

        long result = dp[n][(int)(totalSum / 2)];
        System.out.println(result);
    }


        }
